#ifndef _BURST_BUFFERED_IO_H
#define _BURST_BUFFERED_IO_H

int bus_event_get_event(bus_event_t *ev);

uint8_t *bus_event_get_buf(bus_event_t *ev);
int bus_event_get_size(bus_event_t *ev);

void *bus_event_get_data(bus_event_t *);
void bus_event_set_data(bus_event_t *, void *);

void bus_callback(bus_event_t *);
bus_handle_event_t *bus_get_callback(bus_event_t *);
void bus_set_callback(bus_event_t *, 
							  bus_handle_event_t *);
bus_event_t *bus_get_empty_socket(int, 
							int);
bus_event_t *bus_get_socket(int, 
							int);
int bus_add_binding(bus_event_t *, 
					struct sockaddr_in *);
void bus_add_sending(bus_event_t *, 
				char *, 
				int, 
				int);
void bus_add_recving(bus_event_t *, 
				char *, 
				int, 
				int);
void bus_add_connecting(bus_event_t *, 
				struct sockaddr *,
				int);
void bus_add_accepting(bus_event_t *, 
				struct sockaddr *,
				int);
void bus_engine_loop(void *);

#endif
